// Author: Bjorn Schobben

#ifndef VECTOR_H
#define VECTOR_H

#include "Scalar.h"

class Vector
{
public:
	Vector();
	Vector(const Scalar& initx, const Scalar& inity);
	Vector(const Vector& rhs);
	virtual ~Vector();

	const Scalar& GetX() const;
	const Scalar& GetY() const;
	int GetIntX() const;
	int GetIntY() const;
	Vector GetNormal() const;
	void SetX(const Scalar& newx);
	void SetY(const Scalar& newy);

	void Rotate(const Scalar& radian);

	Vector& operator+=(const Vector& rhs);
	Vector operator+(const Vector& rhs) const;
	Vector& operator-=(const Vector& rhs);
	Vector operator-(const Vector& rhs) const;
	Vector& operator*=(const Scalar& rhs);
	Vector operator*(const Scalar& rhs) const;
	Vector& operator=(const Vector& rhs);

private:
	Scalar x;
	Scalar y;
};

#endif //VECTOR_H

